#pragma once
#ifdef a
//单链表的实现
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int TYPENODE;

typedef struct SListNode {
	struct SListNode* next;
	TYPENODE val;
}SLNode;

extern void TestNode();//测试
extern SLNode* BuySListNode(TYPENODE val);//节点创建
extern void SListPushBack(SLNode** pplist, TYPENODE val);//尾插
extern void SListPopBack(SLNode** pplist);//尾删
extern void SListPushHead(SLNode** pplist, TYPENODE data);//头插
extern void SListPopHead(SLNode** pplist);//头删
extern int SListSize(SLNode* pplist);//有效节点个数
extern void PrintSList(SLNode* plist);//打印
extern void SListPushPos(SLNode* pos, TYPENODE data);//pos节点后插入
extern void SListPopPos(SLNode* pos);//pos节点后删除
extern SLNode* SListSearch(SLNode* plist, TYPENODE data);//查找值域为data的第一个节点并返回其下标。
extern void SListDestory(SLNode** pplist);//链表销毁
#endif 